home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / emacs16d.zip / _PARAS.MIN < prev    next >
Text File  |  1991-07-19  |  4KB  |  178 lines

  1.  
  2.  
  3.  
  4. Name:F:auto-fill-mode
  5. Toggle auto-fill-mode.  In fill-mode, Space causes long lines to be broken.
  6. [*]    
  7. #(Fset-minor-mode,Fill,arg1)
  8. [*]
  9.  
  10.  
  11. Name:F:backward-paragraph
  12.     Move back to start of paragraph. This stays in the current
  13. paragraph unless it is already at the start of a paragraph.
  14. [*]
  15. #(sp,<^)
  16. #(Fwhile-yes,(#(==,#(Fis-para-start),w,(yes#(sp,<^)))))
  17. #(Fwhile-yes,(#(Fcase,#(Fis-para-start),
  18.     (w,(#(sp,$>))),
  19.     (p,no),
  20.     (#(==,#(rc,<),0,,(#(sp,<^)yes)))
  21. )))
  22. [*]
  23.  
  24.  
  25. Name:F:fill-paragraph
  26. Fill out the current paragraph so that no line is longer than #(F-fill-column)
  27. ...mark 2 = starting point.
  28. [*]#(an,Formatting,,...)
  29. #(pm,1)
  30. #(sp,>)
  31. #(F:backward-paragraph)
  32. #(Ffill-paragraph-do)
  33. #(sp,0)
  34. #(an)
  35. #(pm)
  36. [*]
  37.  
  38.  
  39. Name:F:forward-paragraph
  40.     Move forward to next start of paragraph. This will always
  41. leave the current paragraph.
  42. [*]
  43. #(==,#(Fis-para-start),w,,(#(sp,$>)))
  44. #(Fwhile-yes,(#(==,#(Fis-para-start),,(yes#(sp,$>)))))
  45. #(Fwhile-yes,(#(==,#(Fis-para-start),w,(yes#(sp,$>)))))
  46. [*]
  47.  
  48.  
  49. Name:F:split-line
  50. Args:(if-split,if-fail,if-short)
  51.     Split the current line if point is to the right of the fill column.
  52. If possible find a breaking point to the left of the fill column, but if that 
  53. fails then take the first possible breaking point.
  54.     A possible breaking point is at the left end of whitespace to the
  55. right of the fill-prefix (which for this purpose is assumed to be there).
  56.     This functions returns one of the arguments according to the outcome.
  57. [*]
  58. #(pm,2)
  59. #(g?,##(lv,cs),##(F-fill-column),(
  60.     #(sv,cs,##(F-fill-column))
  61.     #(ds,nbrk)
  62.     #(lp,[##(F-whitespace)],,r)
  63.     #(l?,.,^,0,,(
  64.         #(sp,0)
  65.         #(lp,[^##(F-whitespace)],,r)
  66.         #(l?,.,^,,0,(
  67.             #(sp,0)
  68.             #(g?,#(rc,^),##(nc,##(F-fill-prefix)),(
  69.                 #(es,nbrk)
  70.             ))
  71.         ))
  72.     ))
  73.     #(n?,nbrk,(
  74.         #(lp,[##(F-whitespace)],,r)
  75.         #(sv,cs,##(F-fill-column))
  76.         #(l?,.,$,0,,(
  77.             #(es,nbrk)
  78.             #(sp,0)
  79.         ))
  80.     ))
  81.     #(n?,nbrk,(#(sp,$)))
  82.     #(lp,[^##(F-whitespace)],,r)
  83.     #(l?,.,$,0,,(#(dm,0)),(#(dm,$)))
  84.     #(==,#(rc,>),1,(
  85.         #(Fcrlf)
  86.         #(is,##(F-fill-prefix))
  87.         #(sp,1)
  88.         if-split
  89.     ),(
  90.         #(sp,1)
  91.         if-fail
  92.     ))
  93. ),(
  94.     #(sp,1)
  95.     if-short
  96. ))
  97. #(pm)
  98. [*]
  99.  
  100.  
  101. Name:Ffill-paragraph-do
  102.     First fill out the current line. Then split the end off the
  103. current line so it is not longer than ##(F-fill-column), if possible.
  104. If not possible, then make it as short as possible.  In any case,
  105. don't split it in the fill prefix or immediately after.
  106. [*]
  107. #(Ffill-paragraph-do-do)
  108. #(pm,1)
  109. #(sm,0,^)
  110. #(sp,$)
  111. #(F:split-line)
  112. #(sp,0$>)
  113. #(pm)
  114. #(==,#(Fis-para-start),,(#(SELF)))
  115. [*]
  116.  
  117.  
  118. Name:Ffill-paragraph-do-do
  119.     Fill up the current line with succeeding lines until it is at
  120. least as long as #(F-fill-prefix) or contains the end of the
  121. paragraph.
  122. [*]
  123. #(sp,$)
  124. #(g?,#(lv,cs),##(F-fill-column),,(
  125.     #(sp,>)
  126.     #(==,#(Fis-para-start),,(
  127.         #(lp,^##(F-fill-prefix),,r)
  128.         #(pm,1)
  129.         #(l?,.,$,,0,(#(dm,0)))
  130.         #(pm)
  131.         #(dm,<)
  132.         #(is, )
  133.         #(SELF)
  134.     ),(
  135.         #(sp,<)
  136.         #(pm)
  137.     ))
  138. ))
  139. [*]
  140.  
  141.  
  142. Name:Fis-para-start
  143. [wjm 4/7/90] Returns:
  144.     "" if point is inside a paragraph.
  145.     "p" if point is at the start of a paragraph.
  146.       "w" if match to paragraph separate & is not the start of the file.
  147.     "]" if point is at the end of the file.
  148.     "[" if point is at the start of the file and at at paragraph separator.
  149. Assumes point is either EOF or start of a line. The start of a
  150. paragraph is a line which either does not start with the fill-prefix,
  151. or starts with the fill-prefix followed by F-paragraph-separate.
  152. Note: I've changed F-paragraph-separate and F-paragraph-start to omit
  153. the beginning "^".  See comments there for definitions of start of paragraph
  154. used here.
  155. [*]
  156. #(pm,4)
  157. #(==,#(rc,>),0,],(
  158.     #(lp,##(F-fill-prefix),,y)
  159.     #(sp,$>)
  160.     #(sm,2)
  161.     #(sp,0)
  162.     #(==,#(l?,.,2,1,2,(#(==,#(rc,1),0,y))),y,(
  163.         #(sp,2)
  164.         #(Flooking-at,##(F-paragraph-separator),(
  165.             #(==,#(rc,<),0,[,w)
  166.         ),(
  167.             #(Flooking-at,##(F-paragraph-start),p)
  168.         ))
  169.         #(sp,0)
  170.     ),(
  171.         #(Flooking-at,##(F-paragraph-separator),(
  172.             #(==,##(rc,<),0,[,w)
  173.         ),p)
  174.     ))
  175. ))
  176. #(sp,3)
  177. #(pm)
  178. [*]